//
//  RootViewController.swift
//  武汉微博
//
//  Created by 谌桃 on 16/9/20.
//  Copyright © 2016年 ryan.chen. All rights reserved.
//

import UIKit

// MARK: 根视图控制器，其他子控制器的基类
class RootViewController: UIViewController {
    
    // MARK: - 是否登陆
    var isLogin = false
    
    // MARK: - 懒加载
    lazy var tableView = UITableView(frame: CGRectZero, style: .Plain)
    
    // MARK: - 下拉刷新控件
    lazy var refreshControl = UIRefreshControl()
    
    // MARK: - 上拉刷新控件
    lazy var pullUpControl = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.Gray)
    
    // MARK: - 定义属性
    var visitorView:VisitorView?
    
    // MARK: - 视图的生命周期
    override func loadView() {
        
        //判断是否登陆，如果登陆显示主页， 未登陆则显示访客视图
        isLogin ? setUPTableView():setUPVisitorView()
        
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        loadData()
       
    }

    // MARK: - 加载数据
    func loadData(){
        
        
    }
}

// MARK: - visitorViewDelegate
extension RootViewController:visitorViewDelegate{
    
    //实现代理方法
    func visitorViewRegisterButtonClick() {
        print("注册")
    }
    
    func visitorViewLoginButtonClick() {
        print("登录")
    }
}

extension RootViewController{
    
    private func setUPVisitorView(){
        
        visitorView = VisitorView()
        
        //设置代理
        visitorView?.delegate = self
    
        view = visitorView
        
        
        navigationItem.leftBarButtonItem = UIBarButtonItem(
            title: "登录",
            style: .Plain,
            target: self,
            action: "visitorViewLoginButtonClick")
        
        navigationItem.rightBarButtonItem = UIBarButtonItem(
            title: "注册",
            style: .Plain,
            target: self,
            action: "visitorViewRegisterButtonClick")
        
    }

    private func setUPTableView(){
    
        //替换系统的 view
        view = tableView;
        
        tableView.dataSource = self
        tableView.delegate = self
    }
    
    func setUPRefreshContol(){
    
        tableView .addSubview(refreshControl)
        
        //给刷新控件 注册点击事件 在值改变的时候调用方法
        refreshControl .addTarget(self, action: "loadData", forControlEvents: .ValueChanged)
        
        //将上拉刷新控件作为 tableFooterView
        tableView.tableFooterView = pullUpControl

    }
}

extension RootViewController:UITableViewDataSource,UITableViewDelegate{

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 0;
    }
    
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        
        return UITableViewCell()
    }
    
    //找到最后一行进行上拉加载
    func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
        
        let section = tableView.numberOfSections - 1
        let row = tableView.numberOfRowsInSection(section) - 1
        
        if section == indexPath.section && row == indexPath.row && !pullUpControl.isAnimating(){
        
            print("上拉刷新")
            //开始刷新
            pullUpControl.startAnimating()
            
            //加载数据
            loadData()
        }
    }
}